// import 'dart:io';
// import 'dart:typed_data';
// import 'package:flutter/services.dart';
// import 'package:lcapp/api/interface/comcon_api.dart';
// import 'package:lcapp/api/request/response_data.dart';
// import 'package:lcapp/model/event/event_bus.dart';
// import 'package:lcapp/model/pay/in_app_pay.dart';
// import 'package:lcapp/model/toast/toast.dart';
// import 'package:lcapp/tools/image_compress.dart';
// import 'package:path/path.dart' as path;
// import 'package:path_provider/path_provider.dart';
// import 'package:tencent_kit/tencent_kit.dart' as QQ;
// import 'package:wechat_kit/wechat_kit.dart';
// import 'dart:async';
// import 'UniLinksJump.dart';
// import 'share_const.dart';
//
// //分享的平台类型
// enum SharePlatformType { WeChat, WXPYQ, QQ, }
//
// //分享接口调用
// enum ShareRequestType {
//   VIDEOS,
//   NEWS,
// }
//
// class CustomShare {
//   static final CustomShare _customShare = CustomShare._internal();
//   factory CustomShare() {
//     _customShare.initConfig();
//     return _customShare;
//   }
//
//   Map<String, dynamic> Sharemap = {};
//   static late  StreamSubscription<WechatResp> _respSubs;
//   static WechatAuthResp? authResp;
//   //初始化SDK
//   void initConfig() {
//     if (_qqshare == null) {
//       QQ.Tencent.instance.registerApp(
//           appId: Tencent_APPID, universalLink: WECHAT_UNIVERSAL_LINK);
//       _qqshare = QQ.Tencent.instance.respStream().listen(_listenShare);
//     }
//     if (_weChatKit == null) {
//       Wechat.instance.registerApp(
//         appId: WECHAT_APPID,
//         universalLink: WECHAT_UNIVERSAL_LINK,
//       );
//       _weChatKit = Wechat.instance.respStream().listen(_listenWeChatKit);
//       Wechat.instance.reqStream().listen(_listenWeChatKitReq);
//     }
//   }
//
//   //qq分享回调
//   void _listenShare(QQ.BaseResp resp) {
//     String content = 'share: ${resp.ret} - ${resp.msg}';
//     print("qq分享回调 :" + content);
//     if (resp.ret == 0) {
//       shareRequest(Sharemap);
//     } else {
//       eventBus.fire(ShareResultEvent(resp.ret, 0));
//     }
//   }
//
//   //微信插件回调
//   void _listenWeChatKit(BaseResp resp) {
//     if (resp is ShareMsgResp) {
//       //分享回调
//       String content = 'share: ${resp.errorCode} ${resp.errorMsg}';
//       print("微信分享回调 :" + content);
//       if (resp.errorCode == 0) {
//         shareRequest(Sharemap);
//       } else {
//         eventBus.fire(ShareResultEvent(resp.errorCode, 0));
//       }
//     } else if (resp is PayResp) {
//       //支付回调
//       final String content = 'pay: ${resp.errorCode} ${resp.errorMsg}';
//       print('支付: ' + content);
//       eventBus.fire(PayState(resp.errorCode, PayType.PayType_WECHAT)); //发送支付结果
//     }
//   }
//
//   //微信Req回调
//   void _listenWeChatKitReq(BaseReq req) {
//     if (req is LaunchFromWXReq) {
//       LaunchFromWXReq fromWXReq = req;
//       if (fromWXReq.messageExt != null) {
//         UniLinksJump.jump(fromWXReq.messageExt);
//       }
//     } else if (req is ShowMessageFromWXReq) {
//       ShowMessageFromWXReq messageFromWXReq = req;
//       if (messageFromWXReq.messageExt != null) {
//         UniLinksJump.jump(messageFromWXReq.messageExt);
//       }
//     }
//     print('微信req======' + req.toString());
//   }
//
//   //检测是否安装QQ
//   Future<bool> isQQinstall() async {
//     return await QQ.Tencent.instance.isQQInstalled();
//   }
//
//   //检测是否安装微信
//   Future<bool> isWXinstall() async {
//     return await _wechat.isInstalled();
//   }
//
//   shareRequest(Map<String, dynamic> map) async {
//     if(map==null){
//       return;
//     }
//     Sharemap = map;
//     ResponseData res = await CommonAPI.share(map['type'], map['entryId']);
//     if(res.code==200){
//       showToast('分享成功');
//       eventBus.fire(ShareResultEvent(0, Sharemap["entryId"]));
//     }
//   }
//
//   WXPay(
//       {String partnerId,
//       String prepayId,
//       String package,
//       String nonceStr,
//       String timeStamp,
//       String sign}) {
//     Wechat.instance.pay(
//       appId: WECHAT_APPID,
//       partnerId: partnerId,
//       prepayId: prepayId,
//       package: package,
//       nonceStr: nonceStr,
//       timeStamp: timeStamp,
//       sign: sign,
//     );
//   }
//
//   //跳转微信客服
//   WXChatService({
//     String corpId = WECHAT_SERVICECHATID,
//     String path = WECHAT_SERVICECHATURL,
//   }) {
//     Wechat.instance.openCustomerServiceChat(
//       corpId: corpId,
//       url: path,
//     );
//   }
//
//   //跳转微信小程序
//   WXOpenMiniProgram({
//     String userName,
//     String path,
//   }) {
//     Wechat.instance.launchMiniProgram(
//       userName: userName,
//       path: path,
//     );
//   }
//
//   //分享文本到微信
//   WXsahreText(String text, {Map<String, dynamic> map}) {
//     Sharemap = map;
//     _wechat.shareText(scene: WechatScene.SESSION, text: text);
//   }
//
//   //分享图片到微信
//   WXsahreImg(String title, String desc, String imgurl,
//       {Map<String, dynamic> map}) async {
//     Sharemap = map;
//     title = title ?? "粮策";
//     desc = desc ?? " ";
//     _wechat.shareImage(
//         scene: WechatScene.SESSION,
//         title: title,
//         description: desc,
//         imageUri: await getImgURI(imgurl, size: 25 * 1024));
//   }
//
//   //分享网页到微信
//   WXsahreWeb(String title, String desc, String weburl,
//       {String imgUrl, Map<String, dynamic> map}) async {
//     Sharemap = map;
//     if (title != null && title.length > 512) {
//       title = title.substring(0, 500);
//     }
//     if (desc != null && desc.length > 1024) {
//       desc = desc.substring(0, 1000);
//     }
//     if (title != null && desc != null) {
//       _wechat.shareWebpage(
//         scene: WechatScene.SESSION,
//         title: title,
//         description: desc,
//         webpageUrl: weburl,
//         thumbData: await getImgData(imgUrl),
//       );
//     } else {
//       if (title != null) {
//         _wechat.shareWebpage(
//           scene: WechatScene.SESSION,
//           title: '粮策',
//           description: title,
//           webpageUrl: weburl,
//           thumbData: await getImgData(imgUrl),
//         );
//       } else {
//         _wechat.shareWebpage(
//           scene: WechatScene.SESSION,
//           title: '粮策',
//           description: desc,
//           webpageUrl: weburl,
//           thumbData: await getImgData(imgUrl),
//         );
//       }
//     }
//   }
//
//   //分享音乐到微信
//   WXsahreMusic(String title, String desc, String musicUrl,
//       {String imgurl, Map<String, dynamic> map}) async {
//     Sharemap = map;
//     title = title ?? "粮策";
//     desc = desc ?? " ";
//     _wechat.shareMediaMusic(
//         scene: WechatScene.SESSION,
//         title: title,
//         description: desc,
//         musicDataUrl: musicUrl,
//         thumbData: await getImgData(imgurl));
//   }
//
//   //分享视频到微信
//   WXsahreVideo(String title, String desc, String videoUrl,
//       {String imgurl, Map<String, dynamic> map}) async {
//     Sharemap = map;
//     title = title ?? "粮策";
//     desc = desc ?? " ";
//     _wechat.shareVideo(
//         scene: WechatScene.SESSION,
//         title: title,
//         description: desc,
//         videoUrl: videoUrl,
//         thumbData: await getImgData(imgurl));
//   }
//
//   //分享文本到微信朋友圈
//   WXPYQsahreText(String text, {Map<String, dynamic> map}) {
//     Sharemap = map;
//     _wechat.shareText(scene: WechatScene.TIMELINE, text: text);
//   }
//
//   //分享图片到微信朋友圈
//   WXPYQsahreImg(String title, String desc, String imgurl,
//       {Map<String, dynamic> map}) async {
//     Sharemap = map;
//     title = title ?? "粮策";
//     desc = desc ?? " ";
//     _wechat.shareImage(
//         scene: WechatScene.TIMELINE,
//         title: title,
//         description: desc,
//         imageUri: await getImgURI(imgurl, size: 25 * 1024));
//   }
//
//   //分享网页到微信朋友圈
//   WXPYQsahreWeb(String title, String desc, String weburl,
//       {String imgUrl, Map<String, dynamic> map}) async {
//     Sharemap = map;
//     title = title ?? "粮策";
//     desc = desc ?? " ";
//     if (title.length > 512) {
//       title = title.substring(0, 500);
//     }
//     if (desc.length > 1024) {
//       desc = desc.substring(0, 1000);
//     }
//     _wechat.shareWebpage(
//       scene: WechatScene.TIMELINE,
//       title: title,
//       description: desc,
//       webpageUrl: weburl,
//       thumbData: await getImgData(imgUrl),
//     );
//   }
//
//   //分享音乐到微信朋友圈
//   WXPYQsahreMusic(String title, String desc, String musicUrl,
//       {String imgUrl, Map<String, dynamic> map}) async {
//     Sharemap = map;
//     title = title ?? "粮策";
//     desc = desc ?? " ";
//     _wechat.shareMediaMusic(
//         scene: WechatScene.TIMELINE,
//         title: title,
//         description: desc,
//         musicDataUrl: musicUrl,
//         thumbData: await getImgData(imgUrl));
//   }
//
//   //分享视频到微信朋友圈
//   WXPYQsahreVideo(String title, String desc, String videoUrl,
//       {String imgurl, Map<String, dynamic> map}) async {
//     Sharemap = map;
//     title = title ?? "粮策";
//     desc = desc ?? " ";
//     _wechat.shareVideo(
//         scene: WechatScene.TIMELINE,
//         title: title,
//         description: desc,
//         videoUrl: videoUrl,
//         thumbData: await getImgData(imgurl));
//   }
//
//   //分享文本到QQ
//   QQsahreText(String text, {Map<String, dynamic> map}) {
//     Sharemap = map;
//     _tencent.shareMood(scene: QQ.TencentScene.SCENE_QQ, summary: text);
//   }
//
//   //分享图片到QQ
//   QQsahreImg(String title, String desc, String imgurl,
//       {Map<String, dynamic> map}) async {
//     Sharemap = map;
//     title = title ?? "粮策";
//     desc = desc ?? " ";
//     _tencent.shareImage(
//         scene: QQ.TencentScene.SCENE_QQ,
//         imageUri: await getImgURI(imgurl, size: 25 * 1024));
//   }
//
//   //分享网页到QQ
//   QQsahreWeb(String title, String desc, String targetUrl,
//       {String imgurl, Map<String, dynamic> map}) async {
//     Sharemap = map;
//     if (title != null && desc != null) {
//       _tencent.shareWebpage(
//         scene: QQ.TencentScene.SCENE_QQ,
//         title: title,
//         summary: desc,
//         targetUrl: targetUrl,
//         imageUri: await getImgURI(imgurl),
//       );
//     } else {
//       if (title != null) {
//         _tencent.shareWebpage(
//           scene: QQ.TencentScene.SCENE_QQ,
//           title: '粮策',
//           summary: title,
//           targetUrl: targetUrl,
//           imageUri: await getImgURI(imgurl),
//         );
//       } else {
//         _tencent.shareWebpage(
//           scene: QQ.TencentScene.SCENE_QQ,
//           title: '粮策',
//           summary: desc,
//           targetUrl: targetUrl,
//           imageUri: await getImgURI(imgurl),
//         );
//       }
//     }
//   }
//
//   //分享音乐到QQ
//   QQsahreMusic(String title, String desc, String targetUrl,
//       {String imgurl, Map<String, dynamic> map}) async {
//     Sharemap = map;
//     title = title ?? "粮策";
//     desc = desc ?? " ";
//     _tencent.shareMusic(
//         scene: QQ.TencentScene.SCENE_QQ,
//         title: title,
//         summary: desc,
//         targetUrl: targetUrl,
//         imageUri: await getImgURI(imgurl));
//   }
//
// //  分享文本到QQ空间
//   QQsahreTextZone(String text) {
//     _tencent.shareMood(scene: QQ.TencentScene.SCENE_QZONE, summary: text);
//   }
//
// //  分享图片到QQ空间
//   QQsahreImgZone(String title, String desc, String imgurl) async {
//     title = title ?? "粮策";
//     desc = desc ?? " ";
//     _tencent.shareImage(
//         scene: QQ.TencentScene.SCENE_QZONE, imageUri: await getImgURI(imgurl));
//   }
//
//   //分享网页到QQ空间
//   QQsahreWebZone(String title, String desc, String targetUrl,
//       {String imgurl}) async {
//     title = title ?? "粮策";
//     desc = desc ?? " ";
//     _tencent.shareWebpage(
//         scene: QQ.TencentScene.SCENE_QZONE,
//         title: title,
//         summary: desc,
//         targetUrl: targetUrl,
//         imageUri: await getImgURI(imgurl));
//   }
//
//   //分享音乐到QQ
//   QQZonesahreMusic(String title, String desc, String targetUrl,
//       {String imgurl}) async {
//     title = title ?? "粮策";
//     desc = desc ?? " ";
//     _tencent.shareMusic(
//         scene: QQ.TencentScene.SCENE_QZONE,
//         title: title,
//         summary: desc,
//         targetUrl: targetUrl,
//         imageUri: await getImgURI(imgurl));
//   }
//
//   Future<Uri> getImgURI(String imgurl, {int size = 32}) async {
//     if (imgurl != null) {
//       if (!imgurl.startsWith("http")) {
//         if (!imgurl.startsWith("assets")) {
//           File file = File(imgurl);
//           Uint8List byteData = await file.readAsBytes();
//           Directory saveDir = await getTemporaryDirectory();
//           File saveFile = File(path.join(saveDir.path, 'tmp/share.png'));
//           if (!saveFile.existsSync()) {
//             saveFile.createSync(recursive: true);
//           }
//           saveFile.writeAsBytesSync(
//             byteData.buffer.asUint8List(),
//             flush: true,
//           );
//           return Uri.file(saveFile.path);
//         }
//         ByteData byteData = await rootBundle.load(imgurl);
//         Directory saveDir = await getTemporaryDirectory();
//         File saveFile = File(path.join(saveDir.path, 'tmp/share.png'));
//         if (!saveFile.existsSync()) {
//           saveFile.createSync(recursive: true);
//         }
//         saveFile.writeAsBytesSync(
//           byteData.buffer.asUint8List(),
//           flush: true,
//         );
//         return Uri.file(saveFile.path);
//       }
//
//       Directory saveDir = await getTemporaryDirectory();
//       File saveFile = File(path.join(saveDir.path, 'tmp/share.png'));
//       if (!saveFile.existsSync()) {
//         saveFile.createSync(recursive: true);
//       }
//       saveFile.writeAsBytesSync(
//         await ImageCompress.compressToSize(imgurl: imgurl, size: size),
//         flush: true,
//       );
//       return Uri.file(saveFile.path);
//     } else {
//       ByteData byteData =
//       await rootBundle.load('assets/icon/app_share_icon.png');
//       Directory saveDir = await getTemporaryDirectory();
//       File saveFile = File(path.join(saveDir.path, 'tmp/share.png'));
//       if (!saveFile.existsSync()) {
//         saveFile.createSync(recursive: true);
//       }
//       saveFile.writeAsBytesSync(
//         byteData.buffer.asUint8List(),
//         flush: true,
//       );
//       return Uri.file(saveFile.path);
//     }
//   }
//
//   Future<Uint8List> getImgData(String imgurl, {int size = 32}) async {
//     if (imgurl != null) {
//       if (!imgurl.startsWith("http")) {
//         ByteData byteData = await rootBundle.load(imgurl);
//         return byteData.buffer.asUint8List();
//       }
//       return ImageCompress.compressToSize(imgurl: imgurl, size: size);
//     } else {
//       String path = 'assets/icon/app_share_icon.png';
//       ByteData byteData = await rootBundle.load(path);
//       return byteData.buffer.asUint8List();
//     }
//   }
// }